package com.coder.rental.controller;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.coder.rental.entity.RentalType;
import com.coder.rental.service.IRentalTypeService;
import com.coder.rental.utils.Result;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.*;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author tuboyuan
 * @since 2025-09-04
 */
@RestController
@RequestMapping("/rental/rentalType")
public class RentalTypeController {
    @Resource
    private IRentalTypeService rentalTypeService;

    /**
     * 分页搜索租赁类型信息
     * @param page 页码
     * @param size 每页大小
     * @param rentalType 租赁类型查询条件
     * @return 分页查询结果
     */
    @PostMapping("/{page}/{size}")
    public Result search(@PathVariable int page, @PathVariable int size, @RequestBody RentalType rentalType){
        Page<RentalType> page1=new Page<>(page,size);
        return  Result.success(rentalTypeService.searchByPage(page1,rentalType));
    }

    /**
     * 保存租赁类型信息
     * @param rentalType 租赁类型对象
     * @return 保存结果
     */
    @PostMapping
    public Result save(@RequestBody RentalType rentalType){
        return rentalTypeService.save(rentalType)?Result.success(): com.coder.rental.utils.Result.fail();
    }

    /**
     * 更新租赁类型信息
     * @param rentalType 租赁类型对象
     * @return 更新结果
     */
    @PutMapping
    public Result update(@RequestBody RentalType rentalType){
        return rentalTypeService.updateById(rentalType)?Result.success(): com.coder.rental.utils.Result.fail();
    }

    /**
     * 删除租赁类型信息
     * @param ids 要删除的租赁类型ID字符串，多个ID用逗号分隔
     * @return 删除结果
     */
    @DeleteMapping("/{ids}")
    public Result delete(@PathVariable String ids){
        return rentalTypeService.delete(ids)?Result.success():Result.fail();
    }

    @GetMapping
    public Result selectAll(){
        return Result.success(rentalTypeService.list());
    }

}
